The subject matter of this application is directed to serial communication, and more particularly to isolated Serial Peripheral Interface Bus (SPI) communication.
SPI communication involves sending data one bit at a time, sequentially, over a communication channel. Devices using SPI communication operate in a master/slave configuration where the master device initiates the communication with one or more slave devices. Data is moved between the master device and the slave device based on a clock signal generated by the master device. Using the clock signal as a reference, the master device sends one bit of data at a time to the slave device. The slave device reads the bits of data sent by the master device and sends one bit of data at a time back to the master device. Using the generated clock signal as the reference, the master device reads the bits of data sent by the slave device.
Typically, the master device and the slave device send data over the communication channel on one transition (e.g., rising edge) of the clock and read the data in the opposite transition (e.g., falling edge) of the clock. Accordingly, the clock generated by the master device determines the maximum bandwidth of the communication between the devices. However, propagation delay associated with sending the data from the master device to the slave device and the propagation delay associated with sending the data from the slave device to the master device place limits on the speed of the communication. If the round trip propagation delay approaches or exceeds half of the clock period, it may be necessary to reduce the clock speed, thus reducing the communication bandwidth.
The bandwidth is further reduced when isolation devices are used as part of the communication channel in an isolated SPI implementation. The additional delay associated with the isolation devices, which in some cases may be the dominant delay component between the master and slave devices, present significant challenge to system designers who need high system bandwidth. Methods have been proposed to generate a reference clock synchronous with the returning data on the side of the slave device which is sent over the isolation channel. However, these methods use additional isolation channels to send the reference clock, which consume space and power in the system.
Accordingly, there is a need in the art for high-speed isolated SPI communication systems and methods.